type Result<T> = Success<T> | Failure